package team.epos.utils.dao;

import java.util.List;
import java.util.TreeMap;

/**
 * Create by BaseDao on 7/13/2018
 */
public interface BaseDao {

    /**
     * 查询所有
     *
     * @param c
     * @return
     */
    public List quaryAll(Class c);

    /**
     * @param c
     * @param pageIndex 当前索引
     * @param pageCount 每页显示多少数据
     * @return
     */
    public List queryWithPage(Class c, int pageIndex, int pageCount);

    /**
     * 根据ID查找
     *
     * @param c
     * @param id
     * @return
     */
    public Object getById(Class c, int id);

    /**
     * 根据条件查询
     *
     * @param c
     * @param param
     * @return
     */
    public List getByCondition(Class c, TreeMap<String, Object> param);

    /**
     * 条件查询
     *
     * @param c
     * @param pageIndex 当前索引
     * @param pageCount 每页显示多少数据
     * @return
     */
    public List getByConditionWithPage(Class c, TreeMap<String, Object> param, int pageIndex, int pageCount);

    /**
     * 增加
     *
     * @param obj
     * @param sequence id若是自增，则为传sequence 否则为Null
     * @return
     */
    public int insert(Object obj, String sequence);

    /**
     * 更新
     *
     * @param obj
     * @return
     */
    public int update(Object obj);


    /**
     * 有条件更新
     *
     * @param obj
     * @return
     */
    public int updateByCondition(Object obj);

    /**
     * 根据id删除
     *
     * @param c
     * @param id
     * @return
     */
    public int deleteById(Class c, int id);

    /**
     * 根据条件删除
     *
     * @param c
     * @param param
     * @return
     */
    public int deleteByCondition(Class c, TreeMap<String, Object> param);


}
